package com.gxy.learn.design.model.behaviour.state;

import lombok.extern.slf4j.Slf4j;

/**
 * @description: 电梯停止状态类
 * @author: gaoxueyong
 * @Date: 2022/11/8 17:07
 */
@Slf4j
public class StopingState extends LiftState {
    /**
     * 开门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void open() {
//        停止状态时可以开门的
        super.context.setLiftState(Context.OPENING_STATE);
        super.context.open();
    }

    /**
     * 关门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void close() {
//        停止状态是可以关门的
        super.context.setLiftState(Context.CLOSING_STATE);
        super.context.close();
    }

    /**
     * 运行
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void run() {
//        停止状态再跑起来，很正常
        super.context.setLiftState(Context.RUNNING_STATE);
        super.context.run();
    }

    /**
     * 停止
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void stop() {
        log.info("电梯停止了。。。");
    }
}
